<?dyhb
class DGtk{

	/**
	 * 后台任务 回调函数
	 *
	 * @access private
	 * @var array
	 * @static
	 */
	static private $_arrBackgroupWorkCallback;
	static private $_arrBackgroupWorkArgvs;
	
	/**
	 * Block 状态
	 *
	 * @access private
	 * @var bool
	 * @static
	 */
	static private $_bBlocking=false;

	/**
	 * 映射对象
	 *
	 * @access private
	 * @var object
	 * @static
	 */
	static private $_oMapItemToData;

	/**
	 * 显示一个 消息对话框
	 *
	 * @access public
	 * @param $sLabel string 消息（正文）
	 * @param $sMessageTitle string 消息标题
	 * @param $nDialogType=Gtk::MESSAGE_INFO int:GtkMessageType 对话框类型
	 * @param $nButtonFlags=Gtk::BUTTONS_OK int:GtkButtonsType 按钮
	 * @param $nDialogFlags=Gtk::DIALOG_MODAL|Gtk::DIALOG_DESTROY_WITH_PARENT int:GtkDialogFlags 对话框 特性
	 * @param $oParentWidget=null GtkWidget 父窗口
	 * @return int
	 */
	static public function messageDialog($sLabel,$sMessageTitle='',$nDialogType=Gtk::MESSAGE_INFO,$nButtonFlags=Gtk::BUTTONS_OK,$nDialogFlags=3,GtkWidget $oParentWidget=null){}
	
	/**
	 * 此函数是 DGtk::messageDialog()的别名
	 *
	 * @access public
	 * @param $sLabel string 消息（正文）
	 * @param $sMessageTitle string 消息标题
	 * @param $nDialogType=Gtk::MESSAGE_INFO int:GtkMessageType 对话框 类型
	 * @param $nButtonFlags=Gtk::BUTTONS_OK int:GtkButtonsType 按钮
	 * @param $nDialogFlags=Gtk::DIALOG_MODAL|Gtk::DIALOG_DESTROY_WITH_PARENT int:GtkDialogFlags 对话框 特性
	 * @param $oParentWidget=null GtkWidget 父窗口
	 * @return int
	 */
	static public function M($sLabel,$sMessageTitle='',$nDialogType=Gtk::MESSAGE_INFO,$nButtonFlags=Gtk::BUTTONS_OK,$nDialogFlags=3,GtkWidget $oParentWidget=null){}
	
	/**
	 * 显示一个 确认对话框
	 *
	 * @access public
	 * @param $sLabel string 消息（正文）
	 * @param $sMessageTitle string 消息标题
	 * @param $nDlgFlags=Gtk::DIALOG_MODAL|Gtk::DIALOG_DESTROY_WITH_PARENT int:GtkDialogFlags 对话框 特性
	 * @param $oParentWidget=null  GtkWidget 父窗口
	 * @static
	 * @return bool
	 */
	 static public function confirmDialog($sLabel,$sMessageTitle='',$nDialogFlags=3,GtkWidget $oParentWidget=null){}

	/**
	 * 寻找Gtk样式
	 *
	 * @access public
	 * @param $sStylesDir string Gtk 目录
	 * @param $arrGtkrcPattern array:string Gtk样式文件名
	 * @return array
	 */
	static public function findStyle($sStylesDir, array $arrGtkrcPattern=array('/^gtkrc$/i')){}
	
	/**
	 * 在浏览器中打开网页
	 *
	 * @access public
	 * @param $sUrl string URL地址
	 * @static
	 * @return void
	 */
	static public function openUrlInBrowser($sUrl){}

	/**
	 * 开始后台工作，允许 PHP 在执行一项长时间工作的同时，Gtk用户界面 仍然能够响应用户的输入
	 *
	 * @access public
	 * @param $nSensitivity=1 int 在工作期间，Gtk用户界面 的响应灵敏度， 数值越小，灵敏度越高。该数值不能小于1
	 * @return void
	 */
	static public function startBackgroundWork($nSensitivity=1){}

	/**
	 * 结束后台工作
	 *
	 * @access public
	 * @return void
	 */
	static public function endBackgroundWork(){}
	
	/**
	 * 堵塞等待消息
	 *
	 * @access public
	 * @return void
	 */
	static public function block(){}
	
	/**
	 * 退出堵塞
	 *
	 * @access public
	 * @return void
	 */
	public function quitBlock(){}
	
	/**
	 * 检查Gtk信号
	 *
	 * @access public
	 * @return void
	 */
	static function checkSignal(){}
	
	/**
	 * 在堵塞状态时，执行一个后台函数。
	 *
	 * @access public
	 * @param $Callback callback 回调函数
	 * @param $arrArgvs array 回调参数
	 * @return void
	 */
	public function runBackgroupWork($Callback,array $arrArgvs=array()){}

	/**
	 * Gtk映射
	 * 
	 * @access public
	 * @param $oModel GtkTreeModel GtkTreeModel接口
	 * @param $oItem GtkTreeIter 源变量
	 * @param $MappingData mixed 映射变量
	 * @param $sMappingName='unknow' string 映射名称
	 * @static 
	 * @return oldValue
	 */
	static public function mapGtkItemToData(GtkTreeModel $oModel,GtkTreeIter $oItem,$MappingData,$sMappingName='unknow'){}
	
	/**
	 * 获取Gtk映射对数据
	 * 
	 * @access public
	 * @param $oModel GtkTreeModel 模型
	 * @param $oItem GtkTreeIter 源变量
	 * @param $sMappingName='unknow' string 映射名称
	 * @static
	 * @return mixed
	 */
	static public function getGtkItemData(GtkTreeModel $oModel,GtkTreeIter $oItem,$sMappingName='unknow'){}

	/**
	 * 检查 PHP-Gtk 版本是否为 2.0 以上
	 *
	 * @access public
	 * @static
	 * @return bool
	 */
	static public function isPhpGtk2(){}

	/**
	 * 取得 Gtk 版本
	 *
	 * @access public
	 * @static
	 * @return Version
	 */
	static public function getGtkVersion(){}

}
